The present invention relates to a pipelined system and method of operation of the same. More particularly, the present invention relates to application of different response modes in a pipelined system environment.
In a pipelined system, such as that illustrated in FIG. 1A, one or more initiator devices 5,10,15 communicate requests across the bus 30 to target devices 20,25. The target device 20, 25 receiving a request issues a response across the bus 30 to the initiator 5, 10, 15 of the request. The pipeline bus has a fixed length pipeline protocol for transferring requests from initiators to targets. The pipeline has a fixed slot into which the response must be placed by the target. This is illustrated by FIG. 1B which illustrates a pipeline protocol having a depth of three clock cycles. Thus, a request 40, 45, 50, 55 driven by an initiator has a latency of three clock cycles before a response 60, 65, 70, 75 is issued by the target device. These fixed slots for response must be utilized by the target.
If the target is slow and does not have the response available in time, the protocol allows for a special xe2x80x9cno-response-availablexe2x80x9d (NRA) response to be given to the initiator device which effectively lets the initiator know that a request cannot be completed within a single pipeline depth but must instead be reattempted at a later time. There are multiple options for deciding when to reattempt the request. The simplest is for the initiator to reattempt the request as soon as it has received the NRA response. This is illustrated in FIG. 1C. However, if the target is still unable to supply a response it is possible that even the retried request receives another NRA response. In this case, the pipeline slot has been wasted as no useful progress has been made. Instead, it may be better for the initiator to hold off on its reattempt until it receives a notification from the target. The target does not send the notification until it is confident that it can service the request and supply a response in time.
There are many different choices on how the target can notify the initiator that it is available to service the request. In an on-chip environment where additional wires may be added with little cost, one cost-effective mechanism is to assign a dedicated wire for the notification from each target to all initiators. For purposes of discussion herein, this notification wire is referred to as a xe2x80x9cresponse flagxe2x80x9d which operates between the target and the initiator. When the target issues an NRA response, it also sets the response flag to inactive. While the response flag is inactive, the initiator does not retry any pending request it has for the corresponding target. When the response flag goes active, the initiator knows to reattempt any requests that have received NRA responses and are waiting for that target. It is possible that a target may even have different independent ports for accepting requests from initiators, and each of these ports could have its own dedicated response flag. FIGS. 1D and 1E show the timing and exemplary system using a response flag.
The present invention provides for different modes of operation to enhance the usefulness of the response flag. In one embodiment, a first mode sets the response flag to a first state if the space available in the target device is available to service the request issued by the initiator. A second mode is provided wherein the response flag is set to the first state if space is available in the target device and the target device port is not busy. A third mode is provided in which the response flag is always set to the first state such that the initiator functions is a manner of the prior art of reissuing the request upon receipt of the NRA response. A fourth mode is provided in which the response flag is set to the first state if an early flow control condition exists. The mode or modes can be selected statically at time of system manufacture, or subsequently during configuration of the system, as well as dynamically as the system application or environment dictates.